package com.fh.fruit.service.activity;

import java.util.List;
import java.util.Map;

import com.fh.entity.Page;
import com.fh.fruit.entity.activity.Activity;
import com.fh.util.PageData;

/**
 * 活动
 * 
 * @author Administrator
 * @version 2017.11.30 15:39
 */
public interface ActivityManager {
	/**
	 * 获取活动
	 * 
	 * @author 葛欢欢
	 * @version 2017.11.30 16:40
	 * @return
	 * @throws Exception
	 */
	List<Activity> getActivity(Page page) throws Exception;

	/**
	 * 根据id获取活动
	 * 
	 * @author 葛欢欢
	 * @version 2017.11.30 16:40
	 * @return
	 * @throws Exception
	 */
	Activity getActivityById(int id) throws Exception;

	/**
	 * 添加活动
	 * 
	 * @author 葛欢欢
	 * @version 2017.11.30 16:40
	 * @param activity
	 * @return
	 * @throws Exception
	 */
	int addActivity(PageData pd) throws Exception;

	/**
	 * 修改活动
	 * 
	 * @author 葛欢欢
	 * @version 2017.11.30 16:40
	 * @param activity
	 * @return
	 * @throws Exception
	 */
	int updateActivity(PageData pd) throws Exception;

	/**
	 * 删除活动
	 * 
	 * @author 葛欢欢
	 * @version 2017.11.30 16:40
	 * @param id
	 * @return
	 * @throws Exception
	 */
	int deleteActivity(int id) throws Exception;

	/**
	 * 多级活动统计
	 * @param page
	 * @return Map<String, Object>
	 * @throws Exception
	 */
	List<Map<String, Object>> getListActivity(Page page) throws Exception;

	List<Map<String, Object>> getGradeSection() throws Exception;

	/**
	 * 多级活动商品统计
	 * @param page
	 * @return Map<String, Object>
	 * @throws Exception
	 */
	List<Map<String, Object>> getMultGoods(Page page) throws Exception;

	List<Map<String, Object>> getMultGoods(PageData pd)throws Exception;

	/**
	 * 多级活动整体统计
	 * @param page
	 * @return Map<String, Object>
	 * @throws Exception
	 */
	Map<String, Object> getMultCount(PageData pd)throws Exception;

	/**
	 * 多级活动商品统计
	 * @param page
	 * @return Map<String, Object>
	 * @throws Exception
	 */
	List<Map<String, Object>> getMultGoodsCount(PageData pd)throws Exception;

	/**
	 * 用户信息
	 * @param pd
	 * @return Map<String, Object>
	 * @throws Exception
	 */
	Map<String, Object> getUserDetails(PageData pd) throws Exception;

	/**
	 * 奖金列表
	 * @param page
	 * @return Map<String, Object>
	 * @throws Exception
	 */
	List<Map<String, Object>> getBonusList(Page page) throws Exception;
}
